package controllcivil.implementacao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.ejb.Stateless;

import controllcivil.VO.FornecedorMaterialVO;
import controllcivil.abstracts.AbstractEBJ;
import controllcivil.bean.Pedido;
import controllcivil.bean.PedidoMaterial;
import controllcivil.excecao.ExceptionCRUD;
import controllcivil.interfaces.IGeneric;
import controllcivil.interfaces.IPedidoMaterial;

@Stateless
public class PedidoMaterialBD extends AbstractEBJ<PedidoMaterial> implements IGeneric<PedidoMaterial>, IPedidoMaterial{

	@Override
	public List<PedidoMaterial> getListaMateriaisPorPedido(Pedido pedido) {
		StringBuilder hql = new StringBuilder();
		Map<String, Object> parametro = new HashMap<String, Object>();
		
		hql.append("from "+ PedidoMaterial.class.getName() + " pm ");
		hql.append("join fetch pm.fornecedorMaterial fm ");
		hql.append("join fetch pm.material ");
		hql.append("join fetch fm.pessoaJuridica ");
		
		if (pedido != null){
			hql.append("where pm.pedido = :idPedido ");
			parametro.put("idPedido", pedido);
		}
		
		List<PedidoMaterial> retorno = pesquisaPorParametros(hql, parametro);
		return retorno;
		
	}

	@Override
	public void removerListaPedidoMaterial(List<FornecedorMaterialVO> lista) throws ExceptionCRUD {
		
		for (FornecedorMaterialVO fornecedorMaterialVO : lista) {
			this.deletar(fornecedorMaterialVO.getPedidoMaterial());
		}
		
	}

}
